package cn.lili.modules.distribution.service;

import cn.lili.modules.distribution.entity.dos.DistributionGoods;
import cn.lili.modules.distribution.entity.dto.DistributionGoodsSearchParams;
import cn.lili.modules.distribution.entity.vos.DistributionGoodsVO;
import cn.lili.modules.distribution.entity.vos.DistributionInfoVO;
import cn.lili.modules.goods.entity.dos.Category;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;


/**
 * 分销商品业务层
 *
 * @author pikachu
 * @since 2020-03-24 10:46:33
 */
public interface DistributionGoodsService extends IService<DistributionGoods> {

    /**
     * 根据条件分页查询分销商品信息
     *
     * @param distributionGoodsSearchParams 商品条件
     * @return 分页分销商品信息
     */
    Page<DistributionGoodsVO> goodsPage(DistributionGoodsSearchParams distributionGoodsSearchParams);


    /**
     * 根据条件查询分销商品信息
     *
     * @param distributionGoodsSearchParams 条件
     * @return 分销商品信息
     */
    DistributionGoods getDistributionGoods(DistributionGoodsSearchParams distributionGoodsSearchParams);

    /**
     * 批量获取分销商品
     *
     * @param skuIds sku id集合
     * @return 分销商品
     */
    List<DistributionGoods> distributionGoods(List<String> skuIds);

    /**
     * 选择分销商品
     *
     * @param skuId      SKU ID
     * @param
     * @return
     */
    void checked(String skuId,String storeId);

    /**
     * 取消选择分销商品
     *
     * @param id 分销商品ID
     */
    void cancel(String id);

    /**
     * 根据openId查询是否是分销以及其橱窗商品
     * @param searchParams
     * @return
     */
    DistributionInfoVO getDistributionGoodByOpenId(DistributionGoodsSearchParams searchParams);

    /**
     * 根据openId查询是否是分销以及其橱窗商品数量
     * @param searchParams
     * @return
     */
    DistributionInfoVO getDistributionGoodCountByOpenId(DistributionGoodsSearchParams searchParams);

    /**
     * 根据openid查询分销商品分类
     */
    List<Category> getDistributionGoodCategroyListByOpenId(String openId);
}